package org.isima.ui.faces.service;

import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.isima.ui.faces.model.File;
import org.isima.ui.faces.model.FileNode;
import org.primefaces.model.TreeNode;

public class FileService {
	
	/**
	 * Recherche des fichiers contenus dans un repertoire
	 * @param node Repertoire dans lequel on effectue la recherche
	 * @return Liste des fichiers
	 */
	public List<File> doFindAll(TreeNode node) {
		List<File> filesList = new ArrayList<File>();
		
		if (node != null) {	
			java.io.File[] temp = ((FileNode)node.getData()).getFile().listFiles();
			
			if (temp != null) {
				for (java.io.File f : temp) {
					if (f.isFile()) {
						// Si un fichier est trouve, on l'ajoute a la liste avec ses caracteristiques
						filesList.add(new File(f.getName(),(float)(f.length()/1024),
							new SimpleDateFormat("dd/MM/yyyy HH:mm:SS").format(new Date(f.lastModified()))+"",
							f.getName()));
					}
				}
			}
		}
		
		return filesList;
	}

	public void create(String name, String path) {
		System.out.println("creation of "+path+"\\"+name+" file");
		
		if (!new java.io.File(path+"\\"+name).exists()) {
			try {
				new java.io.File(path+"\\"+name).createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}	
	}
}
